package presentacion.carrito;

import java.io.IOException;

import java.util.List;

import javax.servlet.*;
import javax.servlet.http.*;

import persistencia.dao.PedidosDAO;

import presentacion.utilidades.Utilidades;

public class ConfirmarPedido extends HttpServlet {
    private static final String CONTENT_TYPE = 
        "text/html; charset=windows-1252";

    private PedidosDAO pedidoDao;

    public void init(ServletConfig config) throws ServletException {
        super.init(config);

        this.pedidoDao = new PedidosDAO();
    }

    public void doPost(HttpServletRequest request, 
                       HttpServletResponse response) throws ServletException, 
                                                            IOException {
        response.setContentType(CONTENT_TYPE);
        
        //recuperamos el carrito de la sesion.
        HttpSession session = request.getSession();

        //recuperamos la variable de session, carrito
        Carrito carrito = (Carrito)session.getAttribute("carrito");

        // Persistimos el pedido.
        synchronized (carrito) {
            if (carrito.getNumeroItems() > 0) {
                
                String direccion = request.getParameter("direccion");
                Long idPedido = 
                    this.pedidoDao.persistirPedido(carrito, direccion);
                List<PayPal> paypal = 
                    Utilidades.preperarCarritoPayPal(carrito);

              
                session.setAttribute("pedidoPaypal", paypal);
                session.setAttribute("idPedido", idPedido);

                session.removeAttribute("carrito");
                carrito = new Carrito();
                session.setAttribute("carrito", carrito);
                
                response.sendRedirect("paypal.jsp");

            }// El resto de cliks se ignoran
        }
    }
}
